package com.longma.server.service;


import com.baomidou.mybatisplus.core.metadata.IPage;
import com.longma.server.entity.RealtimeData;
import com.longma.server.pojo.dto.AdvanceQueryConditionDTO;
import com.longma.server.pojo.vo.AlarmRecordVO;
import com.longma.server.pojo.vo.AlarmCountVO;

import java.util.List;
import java.util.Map;

/**
 * <p>
 *  服务类
 * </p>
 *
 * @author HAIBO
 * @since 2021-04-28
 */
public interface IAlarmRecordService {
    /**
     * 处理上报数据、数据如果异常、新增告警记录
     */
    void handleRealtimeData(RealtimeData data);

    /**
     * 根据告警记录id删除告警记录
     */
    boolean deleteAlarmRecord(Integer id);

    /*
     * 根据告警记录id处理告警记录  将告警记录标志为已处理，如果该设备没有告警记录 云仓标记为正常运行
     */
    void handleAlarmRecord(Integer id);

    /**
     * 通过邮件链接中的code处理告警记录
     */
    String handleAlarmRecordByMail(String code);

    /**
     * 根据登录账号获取告警数量
     */
    AlarmCountVO getAlarmCount(String loginName);

    /**
     * 根据云仓id列表获取告警数
     */
    Map<Integer,AlarmCountVO> getAlarmCount(List<Integer> yuncangIds);

    /**
     * 分页查询 获取告警记录列表
     */
    IPage<AlarmRecordVO> getAlarmRecordByPage(Long pageNum, Long pageSize, Boolean all, List<AdvanceQueryConditionDTO> conditions);
}
